package br.com.condominio.converter;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;

import br.com.condominio.controller.ComunicadoTipoBean;
import br.com.condominio.entity.ComunicadoTipo;

public class ComunicadoTipoConverter implements Converter {

    @SuppressWarnings({ "static-access", "deprecation" })
	public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) {

    	if (submittedValue.trim().equals("")) {
            return null;
        } else {
            try {
                int number = Integer.parseInt(submittedValue);
				ComunicadoTipoBean bean =  (ComunicadoTipoBean) FacesContext.getCurrentInstance().getApplication().createValueBinding("#{comunicadoTipoBean}").getValue(facesContext.getCurrentInstance());
                
                for (ComunicadoTipo o : bean.getComunicadoTipos()) {
                    if (o.getComutipoCodigo() == number) {
                        return o;
                    }
                }

            } catch(NumberFormatException exception) {
                throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "ComunicadoTipo inválido"));
            }
        }

        return null;
    }

    public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
        if (value == null || value.equals("")) {
            return "";
        } else {
            return String.valueOf(((ComunicadoTipo) value).getComutipoCodigo());
        }
    }
}
